package com.blog.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.blog.common.core.web.page.TableDataInfo;
import com.blog.common.domain.dto.ArticleStatusDto;
import com.blog.common.domain.entity.Article;
import com.blog.common.domain.dto.ArticleDto;
import com.blog.common.domain.dto.ArticleTopDto;
import com.blog.common.domain.dto.ConditionDto;
import com.blog.common.domain.vo.ArticleBackVo;
import com.blog.common.domain.vo.ArticleInfoVo;

import java.io.Serializable;

/**
 * <p>
 * 文章 服务类
 * </p>
 *
 * @author Valerie
 * @since 2023-03-11
 */
@SuppressWarnings("all")
public interface ArticleService extends IService<Article> {

    /**
     * 查询后台文章
     *
     * @param condition 条件
     * @return 文章列表
     */
    TableDataInfo<ArticleBackVo> listArticleBacks(ConditionDto condition);

    /**
     * 根据id查看后台文章
     *
     * @param articleId 文章id
     * @return 文章列表
     */
    ArticleInfoVo getArticleBackById(Serializable articleId);

    /**
     * 根据id查看后台文章
     *
     * @param articleTopDto topVo
     * @return void
     */
    Boolean updateArticleBackTop(ArticleTopDto articleTopDto);

    /**
     * 保存或修改文章
     *
     * @param articleDto 文章
     * @return void
     */
    void saveOrUpdateArticle(ArticleDto articleDto);

    /**
     * 删除文章
     *
     * @param articleIds 文章id
     * @return void
     */
    void deleteArticle(Serializable articleIds);

    /**
     * 推荐文章
     *
     * @param articleStatusDto 文章状态
     * @return void
     */
    boolean recommendArticle(ArticleStatusDto articleStatusDto);

}
